/*
Esempio 4.
Creazione di un grafo mediante lettura da file e utilizzo di procedure di analisi (connessione forte e debole).

Grafo di esempio: 7 nodi, 6 archi.
7 6
1 2
2 3
2 4
4 5
5 6
5 7
*/

#include <stdio.h>
#include <stdlib.h>
#include "glpk.h"

typedef struct { int num; } v_data;

#define vertex(v) ((v_data *)((v)->data))

int main(void) {
	glp_graph *G;

	printf("Esempio 4\n\n");

	G = glp_create_graph(sizeof(v_data), 0);
	glp_read_graph(G, "graph-example4.txt");
	
	printf("\nThis graph has %d weakly connected components and %d strongly connected components.\n", 
			glp_weak_comp(G, offsetof(v_data, num)), glp_strong_comp(G, offsetof(v_data, num)));
	
	glp_delete_graph(G);
	
	return 0;
}
